package br.com.jdcanado.gae.inforse.controller;

import java.io.Serializable;
import java.util.Date;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import br.com.jdcanado.gae.inforse.model.Usuario;
import br.com.jdcanado.gae.inforse.model.UsuarioDAO;

@ManagedBean(name="usuarioMB")
@ApplicationScoped
public class UsuarioMB implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Usuario usuario;
	private Date dataAtual;
	
	public Date getDataAtual() {
		return dataAtual;
	}

	public void setDataAtual(Date dataAtual) {
		this.dataAtual = dataAtual;
	}

	public UsuarioMB(){
		usuario = new Usuario();
	}
	
	public String autenticarUsuario(){
		//inserirUsuario();
		if(UsuarioDAO.verificarUsuario(usuario)){
			usuario = UsuarioDAO.consultarUsuarioByOperador(usuario.getOperador()).get(0);
			dataAtual = new Date();
			FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("currentUser", usuario);
			
			/*try {
				FacesContext.getCurrentInstance().getExternalContext().redirect("principal.jsf");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}*/
			
			return "principalPage";
		}else{
			FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Usuário e/ou Senha inválidos!", "erroLogin");
			FacesContext.getCurrentInstance().addMessage(null, fm);
			return "";
		}
	}
	
	private void inserirUsuario(){
		Usuario novoUsuario = new Usuario();
		novoUsuario.setNome("Administrador");
		novoUsuario.setOperador("Admin");
		novoUsuario.setSenha("Admin");
		novoUsuario.setTipoUsuario("Administrador");
		
		UsuarioDAO.inserirUsuario(novoUsuario);
	}
		
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}


}
